what is generics in java with simple example